This invention relates generally to computer network link tracking services and, more particularly, relates to a method and system for maintaining the integrity of references to a link source.
It is known in the art to represent a link source, e.g., a computer file, through the use of a link client. By way of example, the xe2x80x9cMAC OSxe2x80x9d brand operating system provides a mechanism for representing a link source using a link client. This is referred to as providing an alias to the link source. Similarly, the xe2x80x9cWINDOWS 95xe2x80x9d and xe2x80x9cWINDOWS NTxe2x80x9d 4.0 brand operating systems provide a mechanism for representing a link source using a link client. This is referred to as providing a shell shortcut to the link source.
For use in representing the link source, the link client generally includes data structures that describe a path to the link source as well as other information indicative of certain characteristics of the link source. When the link client is activated, such as by being double clicked, the path directs the computer to the link source whereby the link source may be acted upon, for example, by being opened. The information indicative of certain characteristics of the link source is particularly useful for locating a link source that has been moved, i.e., the path no longer points to the link source.
For finding a link source that has been moved, both the xe2x80x9cMAC OSxe2x80x9d and the xe2x80x9cWINDOWS 95xe2x80x9d and xe2x80x9cWINDOWS NTxe2x80x9d 4.0 brand operating systems include a link tracking service. The link tracking service contains algorithms for locating link sources that have been moved, renamed, copied, or restored from backup. Generally, these algorithms attempt to find a file that has substantially the same characteristics as the link source as represented by the link source descriptors contained within the link client.
More specifically, within the xe2x80x9cMAC OSxe2x80x9d brand operating system, the link tracking service includes two searching algorithms, namely, a relative search algorithm and an absolute search algorithm. In performing a relative search, the link tracking service starts in a specified directory and searches for the target of an alias record (using the file ID, directory ID and/or file name descriptors) by ascending the file system hierarchy to a predetermined common parent of the target and the starting directory. If the client source was not found during this ascending search, the link tracking service continues the search for the client source by descending the hierarchy from that common parent. In performing an absolute search, the link tracking service starts at the root directory of the file system hierarchy and descends the hierarchy looking for the client source using substantially the same search criteria.
Within the xe2x80x9cWINDOW 95xe2x80x9d and xe2x80x9cWINDOWS NTxe2x80x9d 4.0 brand operating system, the link tracking service includes a similar tree searching algorithm to find a likely match for the link source represented by the link client. This search algorithm performs the search utilizing the last known path of the link source file as well as the link source descriptors contained within the link client (e.g., the creation date, the file size, and the file name and extension of the link source). Within the xe2x80x9cWINDOWS NTxe2x80x9d 4.0 brand operating system, the searching algorithm also performs the following steps (subject to time limits imposed by the client application):
1. It searches four directory levels down from the last directory.
2. It moves up one directory and repeats steps 1 and 2 another three times (which can yield results if the target object has been moved near the original path).
3. It searches four levels down from the desktop root (which can yield results if the target object has been moved to a new location on the same desktop).
4. It searches four levels down from the root on each local fixed drive and repeats steps 1-3 within the four directory limit.
It is noted that the xe2x80x9cUNIXxe2x80x9d brand operating system also provides a mechanism for representing a link source using a link client that is referred to as providing a symbolic link. A symbolic link is a link client that only maintains a path to the link source. However, no link tracking capabilities are provided.
In addition to the specific link source searching algorithms described above, there are various other link source tracking approaches known in the art. As will be appreciated, these link source tracking approaches are currently used to resolve links on local area networks and/or on wide area networks such as the Internet. These approaches are generally categorized as follows:
1) Back Linksxe2x80x94In this approach the link source maintains a set of links to all of its link clients. When a link source is moved, the back links are traversed and the link clients have their forward links updated. When a link client is duplicated, the link source is updated to add the new back link.
2) Distributed Tombstonesxe2x80x94In this approach, when a link source is moved, a tombstone is left in its place. The tombstone identifies the location to which the link source has been moved. When a link client discovers a missing link source, it uses the tombstone to begin the search for the link source. If the link source has moved multiple times, the link client may have to take multiple hops to find the final location of the link source. When this occurs, the link client may update all of the intermediate tombstones to refer to the final location so that other link clients can find the link source in one step.
3) Level of Indirectionxe2x80x94In this approach all link sources are catalogued in a globally available server. Link clients store the index within the server of their link source. Every traversal of the link to the link source goes through the server. This method may be optimized by also storing the last known location of the link source in the link client. In this manner, the link client need only consult the link server after a link source has been moved.
4) Search Listsxe2x80x94In this approach no action is taken when a link source is moved. However, when a link client fails to find the link source at the expected location, all machines on a list are searched to find the location of the moved link source. The search list can be maintained manually or automatically.
While these various approaches to link management generally work for their intended purpose, they have several disadvantages associated with their use that are apparent from the brief descriptions provided. For example, the described searching algorithms have the disadvantage of not always yielding positive results when used to perform a link source search. This is particularly true if the link source has been moved to a different machine. Furthermore, these searching algorithms have the disadvantage of using a relatively large amount of network CPU time. In addition, these searching algorithms tend to tie up the machine to the frustration of the user. Still further, these algorithms tend to be difficult to secure as they fail to provide security measures that restrict malicious users from redirecting link clients to dangerous link sources. Accordingly, there exists a need for an improved method and system for maintaining the integrity of references to a link source.
In accordance with this need, the invention is generally realized in a link tracking service for use in maintaining a link between a link client and a link source. The link tracking service includes a local link tracking service, preferably running on all of the computers within a network, and a centralized link tracking service, preferably running on a network server. The local link tracking service manages the link tracking activities for the machine on which it resides. These activities typically include searching for link sources and tracking link source moves. The centralized link tracking service is provided to cooperate with the local link tracking services and, more particularly, for recording link source file movements as reported to it by the local link tracking services. The recorded data is available to the local link tracking services for use in finding a link source that has been moved and for updating data contained within the link client.
Additional features, advantages and objects of the invention will be made apparent from the following detailed description of illustrative embodiments which proceeds with reference to the accompanying figures.